//
//  UIViewController+Extension.m
//  03-Runtime-Method-Swizzle
//
//  Created by J on 16/2/20.
//  Copyright © 2016年 J. All rights reserved.
//

#import <UIKit/UIKit.h>
#import <objc/runtime.h>
@implementation UIViewController (Extension)
+ (void)load{//载入到内存的时候调用比initialize更早
    
    Method method1 = class_getInstanceMethod(self, NSSelectorFromString(@"dealloc"));
    Method method2 = class_getInstanceMethod(self, @selector(xmg_dealloc));
    
    method_exchangeImplementations(method1, method2);

 
    
}

+ (void)initialize{//这个类第一次被使用的时候调用
    
    
}

- (void)xmg_dealloc{
    NSLog(@"%s",__func__);
    [self xmg_dealloc];//再调用系统之前的方法 看起来是死循环其实不是 调用的是交换之前的方法
}
@end
